package action.admin;

import java.util.ArrayList;

import javax.mail.Session;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

import service.securite.DroitsAcces;
import bdd.CategorieBdd;
import bdd.CouleurBdd;
import bdd.FournisseurBdd;
import bdd.TailleBdd;
import bdd.TarifBdd;
import bean.produit.Categorie;
import bean.produit.Couleur;
import bean.produit.Fournisseur;
import bean.produit.Taille;
import bean.produit.Tarif;


public class AdminAjoutProduitAction extends Action {
	   static final long serialVersionUID = 1L;
	   
	  
	   
	   public static boolean aLesDroits(HttpServletRequest request)
		{
			if (DroitsAcces.isAdminProduit(request))
			{
				return true;
			}
			return false;
		}

		protected void initSession(HttpServletRequest request )
		{
			HttpSession session = request.getSession();
		}	
		public ActionForward execute(final ActionMapping pMapping,
				ActionForm pForm, final HttpServletRequest pRequete,
				HttpServletResponse pReponse) {
			ActionErrors errors = new ActionErrors();
			this.initSession(pRequete);
			
			int id_service = Integer.parseInt((String) pRequete.getSession().getAttribute("id_service"));
			
			if (!aLesDroits(pRequete)) {
				errors.add("errors",new ActionMessage("errors.droit"));
				saveErrors(pRequete,errors); 
				return (new ActionForward(pMapping.getInput()));
			}
			try {
				
				ArrayList<Categorie> listC = CategorieBdd.getCategories();
				pRequete.setAttribute("listecategories", listC);
				ArrayList<Couleur> listCouleur = CouleurBdd.getCouleurs();
				pRequete.setAttribute("listecouleurs", listCouleur);
				ArrayList<Taille> listT = TailleBdd.getTailles();
				pRequete.setAttribute("listetailles", listT);
				if (id_service != 0 )
				{
					ArrayList<Fournisseur> listF=FournisseurBdd.getFournisseurs(id_service);
					pRequete.setAttribute("listefournisseurs", listF);
				}
				else
				{
					ArrayList<Fournisseur> listF=FournisseurBdd.getFournisseurs();
					pRequete.setAttribute("listefournisseurs", listF);
				}
				
				ArrayList<Tarif> listTarif = TarifBdd.getTarif();
				pRequete.setAttribute("listeTarif", listTarif);
				
				return pMapping.findForward("success");
				//ServletContext context = getServletContext();
				//RequestDispatcher rd = context.getRequestDispatcher("/AdminAjoutProduit.jsp");
				//rd.forward(request, response);
			} catch (Exception e) {
				e.printStackTrace();
				errors.add("errors",new ActionMessage("errors.exception"));
				saveErrors(pRequete,errors); 
				return (new ActionForward(pMapping.getInput()));
			}
	
			
		}
}